package com.javaai.project.ai;


import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;
import dev.langchain4j.service.spring.AiService;
import dev.langchain4j.service.spring.AiServiceWiringMode;

@AiService(wiringMode = AiServiceWiringMode.EXPLICIT,chatModel = "qwenChatModel",chatMemory = "chatMemory")
public interface Assistant {
    // @SystemMessage 提供角色设定，@UserMessage 传递具体问题。
    // @SystemMessage 在对话开始时生效，为整个对话提供上下文背景。通常用来设定 AI 助手的身份、行为规范、回答风格等
    // @UserMessage 每次用户交互时都会生成新的@UserMessage 。表示实际的用户问题或指令
    // @V 明确指定传入参数的名称
    @UserMessage("请用上海话回答我的问题，并且添加一些表情。{{message}}")
    String chat(@MemoryId int memoryId, @V("message") String userMessage);

    @SystemMessage(fromResource = "my-prompt-template3.txt")
    String chat2(
            @MemoryId int memoryId,
            @UserMessage String userMessage,
            @V("username") String username,
            @V("age") int age
    );
}